package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;

/**
 * 预订提成规则（含联系方式）对象 booking_commission_rules
 *
 * @author ruoyi
 * @date 2025-05-18
 */
@Data
@ApiModel("预订提成规则（含联系方式）")
public class BookingCommissionRules extends AbdulBaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    private Long id;

    /**
     * 提成规则名称
     */
    @Excel(name = "提成规则名称")
    @ApiModelProperty("提成规则名称")
    private String ruleName;

    /**
     * 生效日期类型
     */
    @Excel(name = "生效日期类型")
    @ApiModelProperty("生效日期类型")
    private String effectiveDateType;

    /**
     * 自定义开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "自定义开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("自定义开始日期")
    private Date customStartDate;

    /**
     * 自定义结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "自定义结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("自定义结束日期")
    private Date customEndDate;

    /**
     * 提成计算方式
     */
    @Excel(name = "提成计算方式")
    @ApiModelProperty("提成计算方式")
    private String calculationMethod;

    /**
     * 提成金额/比例
     */
    @Excel(name = "提成金额/比例")
    @ApiModelProperty("提成金额/比例")
    private BigDecimal commissionValue;

    /**
     * 提成方式类型
     */
    @Excel(name = "提成方式类型")
    @ApiModelProperty("提成方式类型")
    private String commissionBasis;

    /**
     * 参与角色
     */
    @Excel(name = "参与角色")
    @ApiModelProperty("参与角色")
    private String participantRoles;

    /**
     * 参与桌台分类序号(逗号分隔)
     */
    @Excel(name = "参与桌台分类序号")
    @ApiModelProperty("参与桌台分类序号")
    private String tableCategoryIds;

    /**
     * 参与桌台分类名称
     */
    @Excel(name = "参与桌台分类名称")
    @ApiModelProperty("参与桌台分类名称")
    private String tableCategoryNames;

    /**
     * 提成条件描述
     */
    @Excel(name = "提成条件描述")
    @ApiModelProperty("提成条件描述")
    private String conditionDescription;

    /**
     * 最低订单金额条件
     */
    @Excel(name = "最低订单金额条件")
    @ApiModelProperty("最低订单金额条件")
    private BigDecimal minOrderAmount;

    /**
     * 免单不参与提成
     */
    @Excel(name = "免单不参与提成")
    @ApiModelProperty("免单不参与提成")
    private String excludeFreeOrders;

    /**
     * 规则状态
     */
    @Excel(name = "规则状态")
    @ApiModelProperty("规则状态")
    private String ruleStatus;

    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    @ApiModelProperty("联系电话")
    private String phone;
}